package com.bsoft.gol.hcb.service.feedback.entity;

import com.fasterxml.jackson.annotation.JsonFormat;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * @Author:FangZhiyi
 * @Description
 * @Data Created in 2020/8/20 11:26
 * @Moddified By:
 */
@Entity
@Table(name = "base_feedback")
public class BaseFeedback implements Serializable {
    private String feedbackId;
    private String userId;
    private String userName;
    private String roleType;
    private String content;
    private String organizationId;
    private String organizationName;
    private String replyUserId;
    private String replyUserName;
    private String replyContent;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh_CN", timezone = "GMT+8")
    private Date replyTime;
    private String status;
    private String classify;
    private String classifyName;
    private String avatar;
    private Byte phoneFollowUpFlag;
    private String phoneNo;
    private String operators;
    private String osVersion;
    private String appVersion;
    private String deviceUniqueCode;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh_CN", timezone = "GMT+8")
    private Date gmtCreate;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh_CN", timezone = "GMT+8")
    private Date gmtModified;

    @Id
    @Column(name = "feedback_id")
    public String getFeedbackId() {
        return feedbackId;
    }

    public void setFeedbackId(String feedbackId) {
        this.feedbackId = feedbackId;
    }

    @Basic
    @Column(name = "user_id")
    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    @Basic
    @Column(name = "user_name")
    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    @Basic
    @Column(name = "role_type")
    public String getRoleType() {
        return roleType;
    }

    public void setRoleType(String roleType) {
        this.roleType = roleType;
    }

    @Basic
    @Column(name = "content")
    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    @Basic
    @Column(name = "organization_id")
    public String getOrganizationId() {
        return organizationId;
    }

    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }

    @Basic
    @Column(name = "organization_name")
    public String getOrganizationName() {
        return organizationName;
    }

    public void setOrganizationName(String organizationName) {
        this.organizationName = organizationName;
    }

    @Basic
    @Column(name = "reply_user_id")
    public String getReplyUserId() {
        return replyUserId;
    }

    public void setReplyUserId(String replyUserId) {
        this.replyUserId = replyUserId;
    }

    @Basic
    @Column(name = "reply_user_name")
    public String getReplyUserName() {
        return replyUserName;
    }

    public void setReplyUserName(String replyUserName) {
        this.replyUserName = replyUserName;
    }

    @Basic
    @Column(name = "reply_content")
    public String getReplyContent() {
        return replyContent;
    }

    public void setReplyContent(String replyContent) {
        this.replyContent = replyContent;
    }

    @Basic
    @Column(name = "reply_time")
    public Date getReplyTime() {
        return replyTime;
    }

    public void setReplyTime(Date replyTime) {
        this.replyTime = replyTime;
    }

    @Basic
    @Column(name = "status")
    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Basic
    @Column(name = "classify")
    public String getClassify() {
        return classify;
    }

    public void setClassify(String classify) {
        this.classify = classify;
    }


    @Basic
    @Column(name = "classify_name")
    public String getClassifyName() {
        return classifyName;
    }

    public void setClassifyName(String classifyName) {
        this.classifyName = classifyName;
    }

    @Basic
    @Column(name = "avatar")
    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    @Basic
    @Column(name = "phone_follow_up_flag")
    public Byte getPhoneFollowUpFlag() {
        return phoneFollowUpFlag;
    }

    public void setPhoneFollowUpFlag(Byte phoneFollowUpFlag) {
        this.phoneFollowUpFlag = phoneFollowUpFlag;
    }

    @Basic
    @Column(name = "phone_no")
    public String getPhoneNo() {
        return phoneNo;
    }

    public void setPhoneNo(String phoneNo) {
        this.phoneNo = phoneNo;
    }

    @Basic
    @Column(name = "operators")
    public String getOperators() {
        return operators;
    }

    public void setOperators(String operators) {
        this.operators = operators;
    }

    @Basic
    @Column(name = "os_version")
    public String getOsVersion() {
        return osVersion;
    }

    public void setOsVersion(String osVersion) {
        this.osVersion = osVersion;
    }

    @Basic
    @Column(name = "app_version")
    public String getAppVersion() {
        return appVersion;
    }

    public void setAppVersion(String appVersion) {
        this.appVersion = appVersion;
    }

    @Basic
    @Column(name = "device_unique_code")
    public String getDeviceUniqueCode() {
        return deviceUniqueCode;
    }

    public void setDeviceUniqueCode(String deviceUniqueCode) {
        this.deviceUniqueCode = deviceUniqueCode;
    }

    @Basic
    @Column(name = "gmt_create")
    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    @Basic
    @Column(name = "gmt_modified")
    public Date getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        BaseFeedback that = (BaseFeedback) o;
        return phoneFollowUpFlag.equals(that.phoneFollowUpFlag) &&
                Objects.equals(feedbackId, that.feedbackId) &&
                Objects.equals(userId, that.userId) &&
                Objects.equals(userName, that.userName) &&
                Objects.equals(roleType, that.roleType) &&
                Objects.equals(content, that.content) &&
                Objects.equals(organizationId, that.organizationId) &&
                Objects.equals(organizationName, that.organizationName) &&
                Objects.equals(replyUserId, that.replyUserId) &&
                Objects.equals(replyUserName, that.replyUserName) &&
                Objects.equals(replyContent, that.replyContent) &&
                Objects.equals(replyTime, that.replyTime) &&
                Objects.equals(status, that.status) &&
                Objects.equals(classify, that.classify) &&
                Objects.equals(classifyName, that.classifyName) &&
                Objects.equals(avatar, that.avatar) &&
                Objects.equals(phoneNo, that.phoneNo) &&
                Objects.equals(operators, that.operators) &&
                Objects.equals(osVersion, that.osVersion) &&
                Objects.equals(appVersion, that.appVersion) &&
                Objects.equals(deviceUniqueCode, that.deviceUniqueCode) &&
                Objects.equals(gmtCreate, that.gmtCreate) &&
                Objects.equals(gmtModified, that.gmtModified);
    }

    @Override
    public int hashCode() {
        return Objects.hash(feedbackId, userId, userName, roleType, content, organizationId, organizationName, replyUserId, replyUserName, replyContent, replyTime, status, classify, classifyName,avatar, phoneFollowUpFlag, phoneNo, operators, osVersion, appVersion, deviceUniqueCode, gmtCreate, gmtModified);
    }

}
